package model;

import utils.EnumType.UnitTime;
import utils.Formatter;


/**
 * Classe che rappresenta un intervallo di tempo. E' composta da due valori: una unità di musira e
 * un valore. Ad esempio (s,1) oppure (ms,23) oppure (us,300).
 * 
 * @author Dumella De Rosa Gennaro
 */
public class Period {
	
	private UnitTime unit;
	private double value;
	
	public Period(UnitTime unit, double value) {
		this.unit = unit;
		this.value = value;
	}
	
	@Override
	public String toString(){
		 String s = Formatter.DecimalFormatter(value);
		 if(unit==UnitTime.microsecond)
			 s += "us";
		 else if (unit==UnitTime.millisecond)
			 s += "ms";
		 else
			 s += "s"; //valore di default
		 
		 return s;
	}

	public UnitTime getUnit() {
		return unit;
	}

	public Double getValue() {
		return value;
	}

	public void setUnit(UnitTime unit) {
		this.unit = unit;
	}

	public void setValue(double value) {
		this.value = value;
	}

	public static void main(String[] args) 
	{	
		Period period1 = new Period(UnitTime.microsecond, new Double(23));
		Period period2 = new Period(UnitTime.second, new Double(2334.2));
		Period period3 = new Period(UnitTime.millisecond, new Double(0.123));
		
		System.out.println(period1.toString());
		System.out.println(period2.toString());
		System.out.println(period3.toString());
		System.out.println(period3.getValue());
	}
}
